This invention relates generally to video display terminals and is particularly directed to the smooth, continuous scrolling of the display of a cathode ray tube.
The inside face of a cathode ray tube (CRT) is coated with phosphor, or a similar light-emitting substance, in the form of individual pixels, or dots, which glow when struck by an electron beam. A complete image is generated on the CRT's screen, or faceplate, by scanning the screen with an electron beam generally in a left to right direction as viewed from the front of the video display in an individual line sequence where the electron beam is deflected downward one line at the end of one sweep to again provide another sweep line from left to right. Thus, when the movement of the electron beam across one horizontal scan line is complete, it drops down to the next horizontal scan line and sweeps across this line from left to right. When the electron beam scan reaches the bottom of the CRT's screen, the electron beam is deflected from the lower right hand corner of the screen to the upper left hand corner thereof in a vertical deflection period. During this interval the electron beam is "off" and the vertical deflection of the beam is thus not seen by the viewer.
When utilized in a computer terminal, the video display on the CRT is accomplished by a mapping process wherein memory bits representing specific points on the CRT's screen are stored in a random access memory (RAM). Each memory bit has a logical value of 1 or 0 with each bit thus representing a light or dark spot at a particular location on the raster of the video display, depending on the bit's value.
In a typical computer terminal with a video display, each alphanumeric character may be thought of as occupying a rectangular "frame" on the CRT's screen. This "frame" may be defined by a rectangular matrix comprised of m by n pixels, or elemental dots. For example, a character "frame" may be 8 pixels high by 10 pixels wide. Within this frame there are 2.sup.80 possible patterns of pixels, where each pixel may be on or off. Thus, each character is 8 scan lines high. In a typical video display terminal there are approximately 200-256 scan lines which provide from 25 to 32 lines of text, or characters.
One limitation in all video display terminals is that the amount of information which can be presented at a given time is finite, i.e., there is a maximum number of characters associated with the video display. One solution to this problem is to use a technique known as "scrolling". Scrolling is a process which moves data on the video display upward or downward one line at a time, thus freeing a scan line of the display to provide more information. For example, in an upward scroll the top line of characters in the display is removed, the remaining lines are moved up one line, and a new line of characters is inserted at the bottom of the display.
Many different methods are used to achieve scrolling in video display terminals, but the most common involves the manipulation of the addresses being read from a video memory for presentation on the video display. For example, if the video display unit begins its display at the second line of video memory rather than the first line, the display will appear to have moved upwards, or scrolled, one line. Systems which utilize this approach are further divided into two classes: line-at-a-time, or "jump", scrolling and sub-line-at-a-time, or "smooth", scrolling. Smooth scrolling provides what its name implies--the information on the video display is moved in increments small enough to make the text appear to move smoothly from one line to the next.
With many commercially available test generators, it is not generally possible to perform smooth scrolling. These systems typically are limited by the number of character rows which they can handle, as compared to the number of scan lines, or vertical character segments, in the video display. If the video display terminal hardware is capable of generating as many rows as there are scan lines and if the controlling computer, or central processing unit (CPU), has access to the individual dots of a character, then it is possible to perform smooth scrolling by treating each character as a sequence of characters. For example, for a character ten pixels tall, the video display may be programmed so that ten rows of information are treated as a single character. These ten rows will then appear as a single character if the pixels corresponding to the character are turned on in the correct location of each of the rows. By advancing the start-of-display a single row at a time, the display will move only 1/10th of a character each time scrolling is performed. This results in the smooth upward scrolling of the information presented on the video display. Unfortunately, as mentioned above, many video display units do not have the capability of addressing as many character rows as there are scan lines in the video display and are thus not capable of smooth scrolling.
The prior art discloses a variety of video display terminal scrolling approaches. For example, U.S. Pat. No. 4,342,991 to Pope et al discloses a scrolling arrangement which makes use of an indirect address counter for addressing data in a refresh memory during the CRT blanking interval and a refresh address counter for addressing data in the refresh memory during other intervals. U.S. Pat. No. 4,375,638 to O'Keefe et al discloses a scrolling display refresh memory address generation apparatus for a video display controller having a row register and PROMs precoded to perform modular addition and multiplication for generating an address used to access the display controller refresh memory such that all but one stationary row of information on the display screen may be scrolled upward. U.S. Pat. No. 4,404,554 to Tweedy, Jr., et al makes use of a smooth scroll offset register 204 which may be programmed with an offset of 0 in the first frame, 1 in the second frame, 2 in the third frame and so forth until N scan lines have been offset where N is the number of scan lines per data row. At this point an entire data row will have been scrolled off the smooth scroll area and the row table must then be manipulated to move each of the remaining data rows up one position. The smooth scroll offset register is then returned to 0 and the sequence is then repeated if additional scrolling is desired. U.S. Pat. No. 4,418,344 to Brown makes use of a CPU interrupt during each vertical retrace interval to update parameter byte information related to the scan line on which the display of a character row is to commence and the number of scan lines of that character row which are to be displayed during the current frame. Updating of the parameter byte information permits the incrementing and/or decrementing of the first scan line number and the number of scan lines. These and other prior art approaches provide a smooth scrolling capability but at considerable expense. This additional expense may take the form of additional components such as additional registers or multiplexers or more memory capacity, all of which increase video display terminal complexity and cost.
The present invention is intended to overcome the aforementioned limitations of the prior art by providing an inexpensive smooth scrolling capability which may be easily incorporated in most video display terminals. The present invention makes use of conventional start-of-display address modification techniques in combination with the alternating changing of the position of the display by means of a vertical position control to provide smooth scrolling in a raster scanned video display terminal.